/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"9713C8BF-6AB7-443A-AF3E-E7E1D052EA7F",variableType:4}
 */
var fagrupado_por = 0;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"535B3033-A75F-4505-8EC7-F4E785F10FB5",variableType:4}
 */
var ftipo = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"B087B94A-8A47-4BD0-8585-FBFFA9A52895",variableType:4}
 */
var fubicacion = null;

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"54B0ACA1-98C1-4329-8C6C-A9466480AA8C"}
 * @AllowToRunInFind
 */
function onShow(firstShow, event) {
	controller.loadRecords(null)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"D3D73C5F-27ED-4001-BFEB-0769A26E8096"}
 * @AllowToRunInFind
 */
function onAction_buscar(event) {
	if (((globals.gAnioHasta * 100) + globals.gMesHasta) < ((globals.gAnioDesde * 100) + globals.gMesDesde))
	{
		globals.DIALOGS.showWarningDialog("Aviso","El Intervalo ingresado es inválido","Ok")
		return
	}
	controller.loadAllRecords()
	var estado = controller.find()
	if (estado == false)
	{
		globals.DIALOGS.showWarningDialog("Aviso","Error al hacer el Find","Ok")
		return
	}

	if ((globals.gAnioHasta - globals.gAnioDesde) > 1)
	{
		//Mayores que el mes_desde en el año_desde
		if (ftipo != null) tipo = ftipo
		if (fubicacion != null)	ubicacion = fubicacion
		anio_alta = globals.gAnioDesde
		mes_alta = ">=" + globals.gMesDesde 
		
		controller.newRecord()
		//Menos que el mes_desde en el año_desde
		if (ftipo != null) tipo = ftipo
		if (fubicacion != null)	ubicacion = fubicacion
		anio_alta = globals.gAnioHasta
		mes_alta = '<=' + globals.gMesHasta
			
		controller.newRecord()
		//Todos los meses en los años que estan en el medio
		if (ftipo != null) tipo = ftipo
		if (fubicacion != null)	ubicacion = fubicacion
		var fanio_1 = globals.gAnioDesde + 1
		var fanio_2 = globals.gAnioHasta - 1
		anio_alta = fanio_1 + " ... " + fanio_2
	}
	else
	{
		if ((globals.gAnioHasta - globals.gAnioDesde ) == 1)
		{
			if (ftipo != null) tipo = ftipo
			if (fubicacion != null)	ubicacion = fubicacion
			anio_alta = globals.gAnioDesde
			mes_alta = ">=" + globals.gMesDesde 
			
			controller.newRecord()
			if (ftipo != null) tipo = ftipo
			if (fubicacion != null)	ubicacion = fubicacion
			anio_alta = globals.gAnioHasta
			mes_alta = '<=' + globals.gMesHasta
		}
		else
		{
			if (ftipo != null) tipo = ftipo
			if (fubicacion != null)	ubicacion = fubicacion
			anio_alta = globals.gAnioHasta
			mes_alta = globals.gMesDesde+ '...' + globals.gMesHasta
		}
	}
	
	var res = controller.search()
	if (res == 0)
	{
		globals.DIALOGS.showWarningDialog("Aviso","Sin registros","Ok")
	    return
	}
	controller.sort("anio_alta desc, mes_alta desc")
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"2305A1C2-F838-430E-A3DB-424E0BCA16A0"}
 */
function imprimir(event) {
	var $win = application.createWindow('BIENES',JSWindow.MODAL_DIALOG)
	$win.title = 'Impresión de Bienes'
	$win.setInitialBounds(-1,-1,950,700)
	if (fagrupado_por == 0) //TIPOS
		//application.showFormInDialog(forms.bienes_impresion_agrupado_tipos,-1,-1,950,700,'BIENES POR TIPOS',true,false,'BIENES',true)
		forms.bienes_impresion_agrupado_tipos.controller.show($win)
	else // UBICACIONES
		forms.bienes_impresion_agrupado_ubicaciones.controller.show($win)
		//application.showFormInDialog(forms.bienes_impresion_agrupado_ubicaciones,-1,-1,950,700,'BIENES POR UBICACIÓN',true,false,'BIENES',true)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"57C812D1-A5EB-490E-B466-8C50143A9BCC"}
 */
function onAction_Tipos(event) {
	ftipo = null
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"357EF40D-C589-49CC-8388-147B231465D0"}
 */
function onAction_Ubicacion(event) {
	fubicacion = null
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"388C19C3-C048-4456-AC12-94512EF87686"}
 */
function onAction_ir_a_detalle(event) {
	globals.formEnVentana('bienes_detalle','BIENES','Detalle de Bien')
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"5F5C9F07-9F4D-4CAB-8AA0-777459B58BED"}
 */
function pdf(event) {

	var type = application.getApplicationType();
	
	if (fagrupado_por == 0) //TIPOS
	{ 
		var frm = forms.bienes_impresion_agrupado_tipos	
		frm.controller.sort("tipo asc, anio_alta asc, mes_alta asc")
	}
	else 
	{
		var frm = forms.bienes_impresion_agrupado_ubicaciones
		frm.controller.sort("ubicacion asc, anio_alta asc, mes_alta asc")
	}
			
	if (type == APPLICATION_TYPES.WEB_CLIENT)
		frm.controller.showPrintPreview()
	else // SmartClient
	{
		var arch = plugins.file.showFileSaveDialog( 'C:/bienes_'+ utils.dateFormat(new Date(),'dd-MM-yyyy HH-mm-ss')+'.pdf', 'Guardar archivo')
		if (arch)
		{
			frm.controller.print(false,false,plugins.pdf_output.getPDFPrinter(arch.getAbsolutePath()));
			application.executeProgram("rundll32.exe", ["url.dll,FileProtocolHandler", arch.getAbsolutePath()])
		}
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"901C545E-91F2-4FF7-B8FB-7D0215C4C8DA"}
 */
function csv(event) {
	var cols = new Array("codigo", "descripcion", "tipo", "ubicacion", "valor", "valdol","bienes_fecha_alta","bienes_fecha_baja")
	globals.gExportaExcel("bienes_con", cols, 'csv')
}

/**
 * @properties={typeid:24,uuid:"D8D3A85B-DFB5-4F3D-AA2F-236A7A1DDEFE"}
 */
function xls()
{
	var cols = new Array("codigo", "descripcion", "tipo", "ubicacion", "valor", "valdol","bienes_fecha_alta","bienes_fecha_baja")
	globals.gExportaExcel("bienes_con", cols, 'xls')
}

/**
 * Handle changed data.
 *
 * @param {String} oldValue old value
 * @param {String} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"D35A91B4-F2C1-4B13-B711-0867B43C19BA"}
 */
function onDataChangeFechaDesde(oldValue, newValue, event) {
	globals.gMesDesde 	= newValue.substring(0,newValue.indexOf('|'))
	globals.gAnioDesde	= newValue.substring(newValue.indexOf('|')+1,newValue.length)
	return true
}

/**
 * Handle changed data.
 *
 * @param {String} oldValue old value
 * @param {String} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"4E6DB003-AFFA-4F27-9BD1-20951F51978D"}
 */
function onDataChangeFechaHasta(oldValue, newValue, event) {
	globals.gMesHasta	= newValue.substring(0,newValue.indexOf('|'))
	globals.gAnioHasta	= newValue.substring(newValue.indexOf('|')+1,newValue.length)
	return true
}
